Typical conventional computer systems such as personal computers or workstations often include one or more local storage devices such as disk drives that operate under the control of the computer system to store local data such as application programs and user files. During operation of such a computer system, a user of the computer system may desire to make a backup copy of the data stored within the local storage device in order to safeguard its contents in the event of failure of the local storage device or accidental loss (e.g., deletion) of the data stored within the local storage device. Various conventional technologies exist to allow the user of the computer system to backup data from, and then subsequently restore data to, the local storage device. Some conventional backup and restore technologies operate by providing a local backup device such as a local tape drive or removable disk drive that, under the control of backup and restore software operating within the user's computer, can store files from the local storage device to backup media such as a disk or tape loaded within the local backup device.
Other conventional data backup and restore technologies operate over a computer network in which many different computer systems are networked to each other to allow the rapid exchange of information. In conventional networked backup and restore systems, client software operates on each user's (i.e., client) computer system coupled to the network to communicate with backup server software operating on a backup server computer system which is also coupled to the network. Each conventional client software application on each client computer system interoperates with the backup server software in the backup server computer system in order to transfer copies of data stored locally within the local storage devices of the client computer system for storage within backup devices such as tape drives or disk arrays operating under control of the backup server computer system.
In conventional network-based backup and restore systems, backup server software applications reserve respective backup storage areas within the backup media to store the collective set of data (e.g., files, applications, and the like) backed up from each respective client computer system. In other words, conventional networked backup and restore technologies operate in a one-to-one backup and restore relationship between each client computer system and the backup server. In the event of a failure of a local storage device within a particular client computer system, a user of the client computer system can operate client restore software to communicate with the backup server to restore the data from the backup storage area or areas assigned to that client computer system. This results in the transfer of data stored within the backup server within that client computer system's backup storage area (i.e., files and applications previously backed up from the client computer system) to the client computer system in order to restore the data for that client computer system to the local storage device in that client computer system.
There are two conventional strategies associated with performing backups of data. A “full” backup causes client backup software to transfer every file and directory stored on the local storage device of a client computer system to the backup server for storage into the backup storage area, thus developing a full or complete copy of the data stored within the client computer system. An “incremental” backup causes the backup client to back up to the backup server only data files that have changed within the client computer system since a particular previous backup was performed. Incremental backups are also commonly referred to as “differential” backups since they capture the difference between the current state of a client file system and the state of client file system as it existed at the time of a previous backup. A full backup can provide a complete set of data to be used in a restoration process of a client whereas a restoration procedure using incremental backups can include a more complex process of having to reference one or more incremental backups in order to retrieve and restore the required data. Frequently, conventional backup systems implement a combination of less periodic full backups (e.g., once a month) in combination with more frequent incremental backups (e.g., nightly) in order to provide backup coverage for data stored within client computer systems. Full backups take longer to accomplish and utilize more processor resources and network bandwidth whereas incremental backups typically take less time and consume less processor and the network resources.